// RuneController.java
package com.geek.hero.controller;

import com.geek.hero.entity.Rune;
import com.geek.hero.result.Result;
import com.geek.hero.service.IRuneService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 * 符文前端控制器
 * 提供符文相关的API接口，包括查询、搜索等功能
 * </p>
 *
 * @author author
 * @since 2025-09-14
 */
@RestController
@RequestMapping("/rune")
@CrossOrigin
public class RuneController {

    // 注入符文服务
    @Autowired
    private IRuneService runeService;

    /**
     * 获取所有符文列表
     * 请求路径: GET /rune
     * @return Result 包含所有符文的列表
     */
    @GetMapping
    public Result list() {
        List<Rune> list = runeService.list();
        return new Result(true, "查询成功", list);
    }

    /**
     * 根据ID获取符文详情
     * 请求路径: GET /rune/{id}
     * @param id 符文ID
     * @return Result 包含指定符文的详细信息
     */
    @GetMapping("/{id}")
    public Result getById(@PathVariable Integer id) {
        // 根据ID查询符文
        Rune rune = runeService.getById(id);
        if (rune != null) {
            // 返回查询成功的符文信息
            return new Result(true, "查询成功", rune);
        } else {
            // 未找到指定ID的符文
            return new Result(false, "未找到该符文");
        }
    }

    /**
     * 根据名称搜索符文
     * 请求路径: GET /rune/search?keyword=关键字
     * @param keyword 搜索关键字
     * @return Result 包含匹配名称的符文列表
     */
    @GetMapping("/search")
    public Result searchByName(@RequestParam String keyword) {
        // 调用服务层方法搜索匹配名称的符文
        List<Rune> runeList = runeService.searchByName(keyword);
        return new Result(true, "查询成功", runeList);
    }
}
